#include <iostream>
#include <fstream>
#include <vector>
#include <cstdint>
#include <string>
#include <nlohmann/json.hpp>
#include "pointcloud_tools.h"
#include "point_preprocess.h"
#include "point_common.h"
#include "model_builder.h"

using json = nlohmann::json;
using namespace pointcloud_tools;
using namespace PointPreprocess;
using namespace model_builder;


int main(int argc, char **argv) {
    uint64_t DDR_BASE_ADDR = 0x95000000;
    uint64_t BASE_PT_ADDR = DDR_BASE_ADDR + 0x01000000;
    uint64_t BASE_IN_ADDR = DDR_BASE_ADDR + 0x02000000;
    uint64_t BASE_RS_ADDR = DDR_BASE_ADDR + 0x03000000;
    bool offline_mode = false;

    ModelBuilder demo(DDR_BASE_ADDR, BASE_PT_ADDR, BASE_IN_ADDR, BASE_RS_ADDR, offline_mode);
    // demo.LoadModelConfig("../scripts/demo_config_1.json");
    demo.LoadModelConfig("../scripts/6conv_config.json");
    demo.RunModel();
    return 0;
}



